package cn.edu.suda.ada.queue;

import java.util.LinkedList;

public class UrlQueue {
	/**
	 * 队列(用LinkedList表示)
	 */
	private  LinkedList<String> urlQueue = new LinkedList<String>();
	/**
	 * 返回队列
	 * @method
	 */
	public LinkedList<String> getUrlQueue(){
		return urlQueue;
	}
	/**
	 * 给队列赋值
	 * @method
	 */
	public void setUrlQueue(UrlQueue queue){
		this.urlQueue.addAll(queue.getUrlQueue());
	}
	/**
	 * 给队列赋值
	 * @method
	 */
	public void setUrlQueue(StaticUrlQueue queue){
		this.urlQueue.addAll(queue.getUrlQueue());
	}
	/**
	 * 将url添加到队列中
	 * @method
	 */
	public synchronized  void addElement(String url){
		urlQueue.add(url);
	}
	/**
	 * 将url添加到队首
	 * @method
	 */
	public synchronized  void addFirstElement(String url){
		urlQueue.addFirst(url);
	}
	/**
	 * 将队列第一个元素删除
	 * @method
	 */
	public synchronized  String outElement(){
		return urlQueue.removeFirst();
	}
	/**
	 * 队列是否为空
	 * @method
	 */
	public synchronized  boolean isEmpty(){
		return urlQueue.isEmpty();
	}
	/**
	 * 队列长度
	 * @method
	 */
	public int size(){
		return urlQueue.size();
	}
	/**
	 * 队列是否包含该url
	 * @method
	 */
	public boolean isContains(String url){
		return urlQueue.contains(url);
	}
	
	/**
	 * 清空队列
	 * @method
	 */
	public void clear(){
		urlQueue.clear();;
	}
}
